package com.mianyang.zhangsan.service;

import com.mianyang.zhangsan.model.dto.SecGrant;
import com.mianyang.zhangsan.model.dto.SecGrantRoleDto;
import com.mianyang.zhangsan.model.entity.SecUserRole;
import com.baomidou.mybatisplus.extension.service.IService;
import lombok.NonNull;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author jiangjr
 * @since 2022-10-23
 */
public interface ISecUserRoleService extends IService<SecUserRole> {
    /**
     * 查询用户角色
     * @param userId 用户id
     * @return 用户拥有角色
     */
    List<Long> selectRoles(Long userId);

    /**
     * 授予用户角色
     * @param roleId 角色id
     * @param userId 用户id
     */
    void grantAuthorities(@NonNull Long roleId,@NonNull Long userId);

    /**
     * 授予用户角色
     * @param grant 授权信息
     */
    void grant(SecGrant grant);

    /**
     * 授予角色于用户
     * @param userRole 授权信息
     * @return 提示信息
     */
    String grantToUser(SecUserRole userRole);
}
